package com.crm.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import com.crm.entity.Module;

public interface ModuleRepository extends JpaRepository<Module, Integer>,JpaSpecificationExecutor<Module> {
	/**
	 * 通过用户id 先查询拥有的角色id 再去查询拥有的模块id
	 * @param id
	 * @return
	 */
	@Query(value="select DISTINCT(m.module_id),m.* from role r INNER JOIN role_module ro ON\r\n" + 
			"r.role_id=ro.role_id INNER JOIN module m on m.module_id=ro.module_id \r\n" + 
			"inner JOIN user_role us on r.role_id=us.role_id INNER JOIN users u ON\r\n" + 
			"u.user_id=us.user_id WHERE u.user_id=?1 ",nativeQuery=true)
	List<Module> getUser_Role_ModuleByUserId(String id);
	
	//树的修改方法
	@Modifying
	@Query(value="update module set module_name=?1,module_url=?2,module_weight=?3 where module_id=?4",nativeQuery=true)
	Integer updateTree(String name,String path,Integer weight,Integer id);
}
